package concurrent;

//通过实现Runnable接口来创建线程类
//实现接口的成员变量是共享的，ThreadA,B共打印10次，除了第一次输出，之后全是共同打印
public class ImpleRunnable2 implements Runnable {
	private int sharedVar=0;   //共享变量
	// run方法同样是线程执行体
	@Override
	public void run() {
		for ( ; sharedVar < 10 ; sharedVar++ ) {
			// 当线程类实现Runnable接口时，
			// 如果想获取当前线程，只能用Thread.currentThread()方法。
			if (Thread.currentThread().getName().equals("新线程B")){
				System.out.println("\t\t" + Thread.currentThread().getName() + "工作，输出" + sharedVar);
			}else{
				System.out.println("\t" + Thread.currentThread().getName() + "工作，输出" + sharedVar);
			}
		}
	}
		
	public static void main(String[] args) {
		Thread.currentThread().setName("主线程");
		ImpleRunnable2 st = new ImpleRunnable2();
		// 通过new Thread(target , name)方法创建新线程
		new Thread(st , "新线程A").start();
		new Thread(st , "新线程B").start();
		for (int i = 0; i < 3;  i++) {
			System.out.println(Thread.currentThread().getName() + "主线程工作 " + i);
		}
	}
}

